package com.nageoffer.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nageoffer.shortlink.admin.dao.entity.GroupDO;
import com.nageoffer.shortlink.admin.dto.req.GroupSortReqDTO;
import com.nageoffer.shortlink.admin.dto.req.GroupUpdateReqDTO;
import com.nageoffer.shortlink.admin.dto.resp.GroupListRespDTO;

import java.util.List;

public interface GroupService extends IService<GroupDO> {

    /**
     * 新增短链接分组
     *
     * @param name 新增短链接分组名
     */
    void saveGroup(String name);

    /**
     * 新增短链接分组
     *
     * @param username 用户名
     * @param name     新增短链接分组名
     */
    void saveGroup(String username, String name);

    /**
     * 查询分组列表
     *
     * @return 所有分组
     */
    List<GroupListRespDTO> listGroup();

    /**
     * 修改短链接分组
     *
     * @param requestParam 请求参数
     */
    void updateGroup(GroupUpdateReqDTO requestParam);

    /**
     * 删除分组
     *
     * @param gid 分组标识
     */
    void deleteGroup(String gid);

    /**
     * 短链接分组排序
     *
     * @param requestParam 排序参数
     */
    void sortGroup(List<GroupSortReqDTO> requestParam);
}
